การเปลี่ยนแปลงข้อมูลแทบไม่เคยเกิดขึ้นเพียงอย่างเดียว: การโอนเงินต้องหักบัญชีหนึ่งและเพิ่มอีกบัญชีหนึ่ง และคำสั่งซื้อต้องจองสต็อกและบันทึกการชำระเงิน หากระบบหยุดกลางคัน ฐานข้อมูลก็จะถูกทิ้งให้อธิบายโลกที่ไม่เคยมีอยู่จริง ทรานแซกชัน คือคำตอบของฐานข้อมูลต่อปัญหานี้ — ลำดับของการดำเนินการหนึ่งรายการหรือมากกว่าที่ฐานข้อมูลปฏิบัติเสมือนเป็น หนึ่งหน่วยงานเดียวที่แบ่งแยกไม่ได้.
ทั้งหมด หรือไม่ก็ไม่เลย
ภายในทรานแซกชัน ทุกการดำเนินการเป็นส่วนหนึ่งของผลลัพธ์เดียวกัน ฐานข้อมูลจะไม่เปิดเผยสถานะสิ้นสุดที่ทรานแซกชันเกิดขึ้นเพียงบางส่วน ตัวอย่างคลาสสิกคือการโอนเงินระหว่างสองบัญชีธนาคาร: ลดยอดคงเหลือของบัญชีต้นทาง แล้วเพิ่มยอดคงเหลือของบัญชีปลายทาง หากมีเพียงขั้นตอนแรกที่สำเร็จ เงินก็จะหายไป หากมีเพียงขั้นตอนที่สอง เงินก็จะโผล่มาโดยไม่มีที่มา การห่อทั้งสองขั้นตอนไว้ในทรานแซกชันเดียวกันขจัดความเป็นไปได้ทั้งสองอย่างนี้
การรับประกันแบบทั้งหมดหรือไม่ก็ไม่เลยนี้เรียกว่า ภาวะอะตอมิก. คอมมิต คือการกระทำที่ทำให้การเปลี่ยนแปลงของทรานแซกชันเป็นถาวร ทรานแซกชันที่ไม่เคยคอมมิตจะไม่ทิ้งร่องรอยใด ๆ ไว้เลย ความคงทน เติมเต็มส่วนสุดท้าย: เมื่อคอมมิตส่งคืนผลสำเร็จแล้ว การเปลี่ยนแปลงจะยังคงอยู่แม้เครื่องจะดับไฟในอีกเสี้ยววินาทีถัดมา
ทรานแซกชันคือขอบเขต
การมองทรานแซกชันเป็นขอบเขตที่ลากล้อมกลุ่มคำสั่งต่าง ๆ ช่วยให้เข้าใจได้ง่ายขึ้น ก่อนถึงขอบเขตและหลังจากนั้น ข้อมูลเป็นไปตามกฎที่โครงสร้างกำหนด ภายในขอบเขตนั้นมีสถานะ промежуточныйอยู่ — บัญชีหนึ่งถูกหักแล้วในขณะที่อีกบัญชียังไม่ถูกเพิ่ม — แต่สถานะเหล่านั้นเป็นส่วนตัวเฉพาะทรานแซกชัน คำสั่งถัดไปในเซสชันอื่นจะไม่ถือว่าสถานะเหล่านั้นเป็นความจริง
สองหน้าที่ในเวลาเดียวกัน
ดังนั้นทรานแซกชันจึงทำหน้าที่สองอย่าง อย่างแรกคือ การจัดการความล้มเหลว: หากโปรเซสล่ม การเชื่อมต่อขาด หรือคำสั่งเกิดข้อผิดพลาด ฐานข้อมูลสามารถกู้คืนสถานะที่มีอยู่ก่อนทรานแซกชันเริ่มต้นได้ อย่างที่สองคือ การควบคุมการมองเห็น: ในขณะที่งานกำลังดำเนินอยู่ ผู้อ่านรายอื่นจะถูกป้องจากการเห็นผลลัพธ์ที่ยังไม่เสร็จ ทั้งสองหน้าที่นี้เกี่ยวข้องกันแต่ไม่เหมือนกัน — ภาวะอะตอมิกตัดสินว่าการเปลี่ยนแปลงจะถูกเก็บไว้หรือไม่ ส่วนการมองเห็นถูกควบคุมด้วยไอโซเลชัน ซึ่งเป็นการตั้งค่าที่ควบคุมว่าทรานแซกชันที่ทำงานพร้อมกันจะมองเห็นกันได้มากน้อยเพียงใด
